package com.atguigu.demo;

import com.atguigu.demo.bean.Pet;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class Springboot2Application {

    public static void main(String[] args) {
//        System.out.println("==========================================@Configuration(proxyBeanMethods = false or true)================================================");
        ConfigurableApplicationContext run = SpringApplication.run(Springboot2Application.class, args);
//        User user = run.getBean(User.class);
//        Pet pet = run.getBean(Pet.class);
//        System.out.println(pet==user.getPet());
//        System.out.println("================================获取容器里面所有组件==========================================================");
//        String[] beanDefinitionNames = run.getBeanDefinitionNames();
//        int beanDefinitionCount = run.getBeanDefinitionCount();
//        System.out.println(beanDefinitionNames.length);
//        System.out.println(beanDefinitionCount);
//        for (String beanDefinitionName : beanDefinitionNames) {
//            System.out.println(beanDefinitionName);
//        }
//        System.out.println("================================获取组件的多种方式==========================================================");
//        User zs = run.getBean("zs", User.class);
//        System.out.println(zs.getPet());
//        Pet cat = run.getBean("cat", Pet.class);
//
//        System.out.println(zs);
//        System.out.println(cat);
        String[] beanNamesForType = run.getBeanNamesForType(Pet.class);
        for (String s : beanNamesForType) {
            System.out.println(s);
        }
        System.out.println();
    }

}
